﻿// <copyright file="IRainSource.cs" company="City of Portland, BES-ASM">
// </copyright>
// <summary>IRainSource interface</summary>

namespace BESASM.EMGAATS.BusinessClasses
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

  /// <summary>
  /// Represents an external source of rain data
  /// </summary>
  public interface IRainSource
  {
    /// <summary>
    /// Gets the dictionary of raingage IDs and their coordinates
    /// </summary>
    Dictionary<int, IPoint> Locations { get; }

    /// <summary>
    /// Gets the list of raingage IDs
    /// </summary>
    List<int> LocationIDs { get; }

    /// <summary>
    /// Returns the next rainfall point for a given raingage
    /// </summary>
    /// <param name="raingage">Raingage ID</param>
    /// <returns>The enumeration of rainfall intensities for the raingage inside the
    /// rain source</returns>
    IEnumerable<HyetographPoint> Rainfall(int raingage);
  }
}
